﻿using System;
using System.Collections.Generic;

namespace Pap.Data
{
    /// <summary>
    /// 
    /// </summary>
    public interface ICommitteeBankAccount : IEntity
    {
        /// <summary>
        /// Gets or sets the committee bank account ID.
        /// </summary>
        /// <value>
        /// The committee bank account ID.
        /// </value>
        Guid CommitteeBankAccountID { get; set; }
        /// <summary>
        /// Gets or sets the committee ID.
        /// </summary>
        /// <value>
        /// The committee ID.
        /// </value>
        Guid CommitteeID { get; set; }
        /// <summary>
        /// Gets or sets the bank account number.
        /// </summary>
        /// <value>
        /// The bank account number.
        /// </value>
        string BankAccountNumber { get; set; }
        /// <summary>
        /// Gets or sets the project ID.
        /// </summary>
        /// <value>
        /// The project ID.
        /// </value>
        Guid ProjectID { get; set; }

        double? Balance { get; set; }

        /// <summary>
        /// Gets the committee bank account deposites.
        /// </summary>
        IEnumerable<ICommitteeBankAccountDeposite> CommitteeBankAccountDeposites { get; }
        /// <summary>
        /// Gets the committee bank account expenses.
        /// </summary>
        IEnumerable<ICommitteeBankAccountExpense> CommitteeBankAccountExpenses { get; }
        /// <summary>
        /// Gets the committee bank account main branch deposites.
        /// </summary>
        IEnumerable<ICommitteeBankAccountMainBranchDeposite> CommitteeBankAccountMainBranchDeposites { get; }
        /// <summary>
        /// Gets the project.
        /// </summary>
        IProject Project { get; }
        /// <summary>
        /// Gets the committee.
        /// </summary>
        ICommittee Committee { get; }
    }
}
